What is @types/web-bluetooth?
@types/web-bluetooth provides TypeScript definitions for the Web Bluetooth API, allowing developers to interact with Bluetooth devices from web applications with type safety and autocompletion.
What are @types/web-bluetooth's main functionalities?
Requesting a Bluetooth Device
This feature allows you to request a Bluetooth device that offers a specific service, in this case, the 'battery_service'. The code demonstrates how to request the device and handle the response or any errors.
navigator.bluetooth.requestDevice({ filters: [{ services: ['battery_service'] }] })
.then(device => console.log(device.name))
.catch(error => console.error(error));
Connecting to a GATT Server
This feature allows you to connect to the GATT (Generic Attribute Profile) server of a Bluetooth device. The code demonstrates how to request a device and then connect to its GATT server.
navigator.bluetooth.requestDevice({ filters: [{ services: ['battery_service'] }] })
.then(device => device.gatt.connect())
.then(server => console.log('Connected to GATT Server'))
.catch(error => console.error(error));
Reading a Characteristic Value
This feature allows you to read a characteristic value from a Bluetooth device. The code demonstrates how to request a device, connect to its GATT server, get the primary service, get the characteristic, and read its value.
navigator.bluetooth.requestDevice({ filters: [{ services: ['battery_service'] }] })
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService('battery_service'))
.then(service => service.getCharacteristic('battery_level'))
.then(characteristic => characteristic.readValue())
.then(value => console.log('Battery level is ' + value.getUint8(0) + '%'))
.catch(error => console.error(error));
Other packages similar to @types/web-bluetooth
noble
Noble is a Node.js library for interfacing with Bluetooth devices. Unlike @types/web-bluetooth, which is designed for web applications, Noble is intended for use in Node.js environments and provides more extensive support for Bluetooth Low Energy (BLE) operations.
web-bluetooth
The web-bluetooth package is a polyfill for the Web Bluetooth API, allowing you to use the same API in environments where it is not natively supported. It provides similar functionalities to @types/web-bluetooth but is aimed at broader compatibility.